package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


import vista.VentanaAgregarProducto;
import modelo.Producto;
import modelo.Drogueria;
public class ControladorAgregarProducto implements ActionListener {
	
	private VentanaAgregarProducto ventanaAgregarProducto;
	private Drogueria drogueria;
	private int posi;
	private int line;
	



	public ControladorAgregarProducto(Drogueria dro){
	    
		super();
	    
		ventanaAgregarProducto  = new VentanaAgregarProducto();	
		ventanaAgregarProducto.setLocationRelativeTo(null);
		ventanaAgregarProducto.setVisible(true);
		ventanaAgregarProducto.agregarListener(this);
		drogueria = dro;
		ventanaAgregarProducto.setLineasComboBox(drogueria.getNombreComboBox());
		ventanaAgregarProducto.inhabilitarExistencia();
		}
	/*****************************************************************************/
	
	public void actionPerformed(ActionEvent ae){
		if (ae.getActionCommand().equalsIgnoreCase("Registrar")){ 
			agregarProducto();
			}
		if (ae.getActionCommand().equalsIgnoreCase("Modificar")){
			 modificarProducto();				   
		    }
		if (ae.getActionCommand().equalsIgnoreCase("Buscar")){
			ventanaAgregarProducto.habilitarExistencia();
			buscarProducto();	
		    }
		if (ae.getActionCommand().equalsIgnoreCase("Eliminar")){
			eliminarProducto();
	      	}
		if (ae.getActionCommand().equalsIgnoreCase("Cancelar")){
			ventanaAgregarProducto.limpiarCampos();
			ventanaAgregarProducto.habilitar();
		    }
		if (ae.getActionCommand().equalsIgnoreCase("Salir")){
							
			System.out.print("Entra");
	     	}
		
}
	/*********************************************************************************************/
	
	public void agregarProducto(){
		
		if (ventanaAgregarProducto.validar()== true){
			
		String codigo    = ventanaAgregarProducto.getCodigo();
		String descripcion   = ventanaAgregarProducto.getDescripcion();
		int existencia = 0;
		String linea = ventanaAgregarProducto.getLinea();
			
	
		int pos = drogueria.buscarPosicionLinea(linea);				
		Producto producto = new Producto(codigo,descripcion, existencia);
		ventanaAgregarProducto.mostrarMensaje(""+ pos);
     	drogueria.incluirProducto(pos, producto);		     	
     	ventanaAgregarProducto.mostrarMensaje("El Registro ha sido exitoso!"+drogueria.getLinea(pos).cantProductos());
     	
     	ventanaAgregarProducto.limpiarCampos();
     	ventanaAgregarProducto.habilitar();
     	ventanaAgregarProducto.mostrarMensaje("" +drogueria.getLinea(pos).cantProductos());
		}
		     	
  

}
	/************************************************************************************************/
	
	public void buscarProducto(){
		String codigo = ventanaAgregarProducto.getCodigo();
		if(!codigo.equals("")){
			int pos = drogueria.buscarProduto(codigo);
			int lin = drogueria.buscarPosicionLinea(codigo);
			ventanaAgregarProducto.mostrarMensaje(""+pos);
			if(pos!=-1){
				ventanaAgregarProducto.setCodigo(drogueria.getProducto(lin, pos).getCodigo());
				ventanaAgregarProducto.setDescripcion(drogueria.getProducto(lin,pos).getDescripcion());
				ventanaAgregarProducto.setExistencia(drogueria.getProducto(lin, pos).getExistencia());
				ventanaAgregarProducto.setLinea(drogueria.getLinea(lin).getDescripcion());
				this.posi = pos;
				this.line = lin;
				ventanaAgregarProducto.inhabilitar();
			}
			else
				ventanaAgregarProducto.mostrarMensaje("Producto no registrado");
		}
		else{
			ventanaAgregarProducto.mostrarMensaje("Por favor ingrese codigo");
		}
	}	
	
	
	public void eliminarProducto(){
		if(drogueria.getProducto(line, posi).getExistencia()==0){
		drogueria.eliminarProducto(line, posi);
		ventanaAgregarProducto.limpiarCampos();
		ventanaAgregarProducto.mostrarMensaje("El Producto ha sido eliminado!");
		ventanaAgregarProducto.habilitar();
		}
	}
	
	 public void modificarProducto(){
		 
		 try {
				
				String descripcion   = ventanaAgregarProducto.getDescripcion();
						
		     	drogueria.getProducto(line, posi).setDescripcion(descripcion);
		     	
		     		
		     
		     	ventanaAgregarProducto.mostrarMensaje("Modificacion exitosa");
		     	
		     	ventanaAgregarProducto.limpiarCampos();
		     	ventanaAgregarProducto.habilitar();
			}
			catch(Exception e) {
				// Mensaje de Dialogo en caso de que ocurra cualquier otra excepcion
				ventanaAgregarProducto.mostrarMensaje("Deben ser validos");
			}
		  
	 }
	
	
	
	
	
	
	
	
}